package com.app.xutils;

import com.app.base.tool.BaseActivity;
import com.app.base.tool.BaseFragment;
import com.app.config.ApplicationConfig;
import com.app.utils.JSONTool;
import com.app.utils.SharePrefUtil;
import com.app.utils.SystemPrintl;

import org.xutils.common.Callback;


/**
 * 作者：lblbh on 16/8/30 11:29
 * 邮箱：lanbuhan@163.com
 * 功能：全局请求返回统一处理
 */
public class MyCallBack <ResultType> implements Callback.CommonCallback<ResultType>{


    @Override
    public void onSuccess(ResultType result) {
        //可以根据公司的需求进行统一的请求成功的逻辑处理
        if(!JSONTool.isStatus(result.toString()) && result.toString().contains(JSONTool.Enum.CODE)){
            int code = JSONTool.requestJSONfindNameCount(result.toString(),null,JSONTool.Enum.CODE);
            if(code == ApplicationConfig.CODE_OVERDUE || code == ApplicationConfig.CODE_ERROE){
                SharePrefUtil.saveString(SharePrefUtil.KEY.APP_USER,"");
            }
        }



        SystemPrintl.systemPrintl("onSuccess"+result.toString());
        /**
         * "flag": false,
         "status": 1,
         "statusText": "请求失败，用户登录token信息已失效，请重新登录",
         "code": 100
         */
    }

    @Override
    public void onError(Throwable ex, boolean isOnCallback) {
        //可以根据公司的需求进行统一的请求网络失败的逻辑处理
//        PromptManager.showToast(LApplication.getContext(), R.string.http_errroe);
        SystemPrintl.systemPrintl("请求onError"+ex.getMessage());
    }

    @Override
    public void onCancelled(CancelledException cex) {
        SystemPrintl.systemPrintl("请求onCancelled");
    }

    @Override
    public void onFinished() {
        SystemPrintl.systemPrintl("请求onFinished");
        //统一清楚keys
        BaseActivity.mapKeys.clear();
        BaseFragment.fMapKeys.clear();
    }


}